// 引入自定义的ajax模块，该模块包含用于发送异步HTTP请求的方法。
import { ajax } from '../utils/ajax.js';

/**
 * 渲染商品详情的异步函数。
 */
async function render() {
    try {
        // 从会话存储中获取商品的ID，并使用const因为它不会再重新赋值。
        const id = sessionStorage.getItem('id');

        // 如果商品ID不存在，表示用户可能直接访问了该页面，属于非法访问。
        if (!id) {
            alert('非法访问');
            location.href = './list.html';
            return;
        }

        // 发起异步GET请求以获取商品的详细信息，并使用const接收响应。
        const response = await ajax.get(`/goods/item/${id}`);

        // 解构响应数据，获取状态码和商品信息，这里使用const因为它们不会改变。
        const { code, info } = response.data;

        // 检查响应码是否为1，如果不是，表示获取商品详情失败。
        if (code !== 1) {
            alert('获取商品详情失败');
            location.href = './list.html';
            return;
        }

        // 使用DOM方法设置页面元素的内容，展示商品的详细信息。
        document.querySelector('.title').textContent = info.title;           // 设置商品标题。
        document.querySelector('.middleimg').src = info.img_big_logo;         // 设置商品主图的源地址。
        document.querySelector('.desc').innerHTML = info.goods_introduce;     // 设置商品的详细介绍。

        // 设置商品的原价、折扣和当前价格。
        document.querySelector('.old').textContent = `¥ ${info.price}`;      // 展示商品原价。
        // 计算折扣，展示折扣百分比。
        const discount = (info.current_price / info.price).toFixed(2);
        document.querySelector('.discount').textContent = `${discount * 100}%`;
        document.querySelector('.curprice').textContent = `¥ ${info.current_price}`; // 展示当前价格。

    } catch (error) {
        // 捕获并处理异步操作中发生的任何错误。
        console.error('获取商品详情时发生错误：', error);
        alert('获取商品详情时发生错误');
        location.href = './list.html';
    }
}

// 调用render函数以执行商品详情的渲染。
render();